package cn.lut.service.handler;

import cn.lut.service.util.ServiceTools;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

/**
 * @user:dell
 * @date:2020年10月29 15:22
 */
public class MyInvocationHandler implements InvocationHandler {
    private Object target;

    public MyInvocationHandler(Object target) {
        this.target = target;//someServiceImpl类
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("MyInvocationHandler类中的invoke方法被执行了");
        System.out.println("执行的方法是："+method.getName());
        Object invoke=null;
        if(method.getName().equals("doSome")){
            //        执行目标类的方法，通过method类实现
            ServiceTools.dolog();
            invoke = method.invoke(target, args);
            ServiceTools.doOther();
        }else if(method.getName().equals("doOther")){
            invoke = method.invoke(target, args);
            ServiceTools.doOther();
        }

        return invoke;
    }
}
